Cuando tu base de código crece más allá de unos pocos cientos de líneas, se transforma de un simple guion en un Sistema. Para evitar la sobrecarga cognitiva, Rust utiliza un sistema jerárquico de Sistema de módulos para dividir las funcionalidades en límites lógicos y manejables.
1. El imperativo de escalabilidad
En un sistema masivo, no deberías necesitar tener toda la arquitectura en tu cabeza. Los módulos te permiten aislar los detalles de implementación, exponiendo solo lo necesario mediante una API pública.
2. La arquitectura dual de paquetes
Un único paquete de Rust Paquete actúa como contenedor. Puede alojar tanto un paquete biblioteca (src/lib.rs) para la lógica principal como un paquete binario (src/main.rs) para el punto de entrada ejecutable. Esto garantiza una separación clara entre qué lo que hace el sistema y cómo cómo el usuario interactúa con él.
3. Fundamentos organizativos
Al inicializar con cargo new --lib, priorizas la modularidad. En un Sistema de Gestión de Restaurantes, "Frente de Casa" (recepción) y "Detrás de Casa" (cocina) están divididos, permitiendo que múltiples interfaces (CLI, Web, Móvil) compartan la misma lógica central de la biblioteca.